/**
 * 链表是一种通过指针串联在一起的线性结构，每一个节点由两部分组成，
 * 一个是数据域一个是指针域（存放指向下一个节点的指针），
 * 最后一个节点的指针域指向null（空指针的意思）.
   链表的入口节点称为链表的头结点也就是head。

   链表分类:
   1.单链表:指针域只能指向下一个节点,只能向后查询.
   2.双链表:每个节点有两个指针域,一个指向上一个节点,另一个指向下一个节点,
   既能向前查询,也能向后查询.
   3.循环链表:链表首尾相连的链表

   链表的存储方式:
   数组是在内存中是连续分布的，但是链表在内存中可不是连续分布的。
   链表是通过指针域的指针链接在内存中各个节点。
   所以链表中的节点在内存中不是连续分布的 ，
   而是散乱分布在内存中的某地址上，
   分配机制取决于操作系统的内存管理。
   各个节点分布在内存的不同地址空间上,通过指针串联在一起

   数组在定义的时候，长度就是固定的，如果想改动数组的长度，就需要重新定义一个新的数组.
   链表的长度可以是不固定的，并且可以动态增删,适合数据量不固定，频繁增删，较少查询的场景.
 */

//链表的定义(初始化链表)
class ListNode {
  val;
  next = null;
  constructor(value) {
    this.val = value;
    this.next = null;
  }
}

